JavaScript-এ email address validation একটি সাধারণ কিন্তু গুরুত্বপূর্ণ টাস্ক, যেটি ওয়েব ফর্মের মাধ্যমে ব্যবহারকারীর ইনপুট যাচাই করার জন্য ব্যবহৃত হয়। যদিও সাধারণভাবে email validation করার জন্য বেশ কিছু পদ্ধতি রয়েছে, তবে একটি সঠিক RegExp (রেগুলার এক্সপ্রেশন) এর মাধ্যমে email ঠিকানা যাচাই করার উপায়টি বেশ কার্যকর।
Email Validation-এর জন্য RegExp ব্যবহার
একটি সাধারণ RegExp এর মাধ্যমে email address এর বৈধতা পরীক্ষা করা যায়। তবে এটি মনে রাখতে হবে যে, প্রাকৃতিক email ঠিকানাগুলির অনেক ভিন্ন ভিন্ন ফর্ম থাকতে পারে, যেমনঃ
- Basic Structure:
local-part@domain - Local Part: এটি সাধারণত অক্ষর, সংখ্যা, ডট (.), হাইফেন (-), আন্ডারস্কোর (_) বা কিছু বিশেষ চিহ্ন ধারণ করতে পারে।
- Domain Part: এটি ডোমেইন নামের অংশ, যা সাধারণত এক বা একাধিক শব্দের সমষ্টি হয়, যার মধ্যে একটি ডট (.) থাকে, যেমন
gmail.comবাexample.co.uk।
সাধারণ Email Validation RegExp
নিম্নলিখিত RegExp একটি মৌলিক email address validation এর জন্য ব্যবহৃত হতে পারে:
let emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
এটি সাধারণ email প্যাটার্নগুলিকে যাচাই করবে যা:
- local-part: এক বা একাধিক অক্ষর, সংখ্যা, ডট (.), হাইফেন (-), বা আন্ডারস্কোর (_) থাকতে পারে।
- @: এটি অবশ্যই থাকতে হবে, যা local-part এবং domain part কে আলাদা করে।
- domain: এক বা একাধিক অক্ষর, সংখ্যা, ডট (.) থাকতে পারে।
- top-level domain (TLD): এটি অবশ্যই কমপক্ষে দুইটি অক্ষরের হতে হবে (যেমন .com, .org, .net ইত্যাদি)।
উদাহরণ
let emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
let email = "user@example.com";
if (emailRegex.test(email)) {
console.log("Valid email address");
} else {
console.log("Invalid email address");
}
এখানে, emailRegex.test(email) ব্যবহার করে email ঠিকানাটি পরীক্ষা করা হচ্ছে। যদি email ঠিকানা বৈধ হয়, তবে true রিটার্ন হবে এবং "Valid email address" মেসেজটি কনসোলে প্রিন্ট হবে।
বিস্তারিত ব্যাখ্যা
^[a-zA-Z0-9._-]+: এই অংশটি local-part কে বর্ণনা করে, যেখানে ছোট-বড় অক্ষর (a-zA-Z), সংখ্যা (0-9), ডট (.), আন্ডারস্কোর (_), এবং হাইফেন (-) থাকতে পারে।+ফ্ল্যাগটি নির্দেশ করে যে এক বা একাধিক চরিত্র থাকতে হবে।@: এটি একটি স্থির চিহ্ন, যা অবশ্যই email ঠিকানার মধ্যে থাকতে হবে এবং local-part ও domain কে আলাদা করে।[a-zA-Z0-9.-]+: এই অংশটি domain অংশের জন্য। এখানে ছোট-বড় অক্ষর (a-zA-Z), সংখ্যা (0-9), ডট (.), এবং হাইফেন (-) থাকতে পারে।\.: ডট (.) চিহ্নটি domain name এবং TLD (Top-Level Domain) এর মধ্যে থাকবেই, তাই এটি\.দিয়ে নির্দিষ্ট করা হয়েছে।[a-zA-Z]{2,6}$: এই অংশটি TLD (যেমন.com,.org,.netইত্যাদি) নির্দেশ করে, যেখানে দুই থেকে ছয়টি অক্ষর থাকতে হবে।
কিছু উদাহরণ
Valid email addresses:
user@example.comjohn.doe123@example.cofirst_last@example.org
Invalid email addresses:
user@example(ডোমেইন অংশে TLD নেই)user@.com(ডোমেইন অংশে কিছু নেই)user@com(ডোমেইন অংশে TLD নেই)@example.com(local-part নেই)
Limitations of the Basic Regex
উপরোক্ত RegExp সাধারণভাবে বেশিরভাগ email ঠিকানাকে ভ্যালিডেট করে, তবে এটি কিছু বিশেষ ক্ষেত্রে সঠিক হতে নাও পারে:
- কিছু email ঠিকানা বিশেষ চিহ্ন যেমন "+" বা "%" থাকতে পারে, যা এই RegExp কভার করে না।
- কিছু email ঠিকানায় নতুন TLD গুলি (যেমন
.photography,.tech) থাকতে পারে, যা ৬টি অক্ষরের সীমাবদ্ধতার মধ্যে পড়েনি।
যেহেতু email ঠিকানার বৈধতা আরও জটিল হতে পারে, তাই কখনো কখনো একেবারে নিখুঁত validation করার জন্য বিশেষ লাইব্রেরি বা সার্ভার সাইড যাচাইয়ের উপর নির্ভর করা ভাল।
সারাংশ
JavaScript-এ email validation করার জন্য একটি সাধারণ RegExp ব্যবহার করা যেতে পারে, যা basic email address গুলিকে যাচাই করে। তবে এটি সব ক্ষেত্রে ১০০% সঠিক নাও হতে পারে, কারণ email ঠিকানাগুলির কাঠামো অনেক ধরনের এবং কিছু নতুন বৈশিষ্ট্য থাকতে পারে যা এই RegExp কভার করে না। এজন্য, সার্ভার সাইড validation এবং প্রয়োজনে বাইরের লাইব্রেরি ব্যবহার করা যেতে পারে।
Read more